#pragma once
#include "imtPublic.h"
#include "imtSceneObject.h"


namespace iMate {

	using Ogre::Light;
	using Ogre::BillboardSet;
	class SceneCamera;

	class _iMateExport SceneLight : public RealSceneObject
	{
		imtDeclareSceneObject(SceneLight, RealSceneObject)
	public:
		SceneLight(const String& name =gNullName);
		~SceneLight();

		virtual void update(Real timeDelta);

		///@copydoc ISceneObject::setDestroy
		virtual void setDestroy();
		///@copydoc ISceneObject::destroy
		virtual void destroy(GameScene* scene);

		///@copydoc ISceneObject::from
		virtual bool from(XmlElement* src, GameScene* scene);
		///@copydoc ISceneObject::to
		virtual bool to(XmlElement* dest, GameScene* scene);
		///@copydoc ISceneObject::aftSceneLoading
		void aftSceneLoading(GameScene* scene);

		/**@return ogre's light*/
		Light* getLight() const{return (Light*)mLight;}

	protected:
		Light* mLight;
	};
}

